This file contains style information; for optimal viewing, use SimpleText rather than TeachText.
Charon 0.9.9b9
Changes since 0.9.9b8
This document describes changes in Charon since the previous beta release, which was version 0.9.9b8.
1. Faster EMSI connects
The EMSI handshake has been optimized to the extent that the current code allowed. In particular, Charon will now recognize the first EMSI_REQ many systems send right after the connect; in the past, this used to get flushed out of Charon's serial cache, and you'd have to wait for several seconds for the next EMSI_REQ from the system.
There has also been an improvement in the speed of recognizing the EMSI_DAT which is sent by the system you called. Even with these changes, the EMSI connect is far from optimal. However, further optimization would require a rewrite of all the EMSI code in Charon, which is something I am not contemplating at the moment.
2. Unfreezing during connects
During the initial stages of connecting to the remote system, when Charon is waiting for the "CONNECT" message from the modem, Charon would "freeze" the system (by not calling WaitNextEvent) as soon as it received a character from the modem until the "CONNECT" had been received. This caused problems if the modem would send some other information early on after dialing; Charon would then freeze the Mac until the modem handshake was done and the connect established. Now Charon will call WNE (and "unfreeze" the Mac) if it has not received a CONNECT string from the modem a second after the first character. The dialing will time out after 20 seconds.
3. Menus that actually work
When Charon is dialing, you can now pull down the application and Balloon Help menus. The Apple, File and Special menus are now disabled. Previously, Charon would not allow you to pull down even the application menu. The only way to switch out of Charon was to click in another window. Now you can go to the application menu and switch to other applications that way.
Please note though, that while you are in a pull-down menu, the system is effectively frozen. No application receives any processing time while a menu is pulled down, and if you do this for a long time while Charon is downloading a file, you'll get ZModem timeout errors. The only way around this from Charon's point of view, is to use async i/o, with completion routines and Time Manager tasks. This would require a total rewrite of all the serial and ZModem code in Charon, and I'm not about to do that.
4. ZModem Send now uses larger blocks
Sending files with ZModem should be more efficient now, since Charon will now use blocks of up to 8K when sending files. Previously, Charon would only use 1K blocks. The block size is determined by several factors: first, the remote system must support the ZedZap protocol; if it doesn't, Charon will go back to 1K blocks.
The second determining factor is the connect speed. The initial block size varies from 128 bytes for connects below 300 bps, to 1024 bytes for 9600 bps and higher. If the transfer goes well (no retried blocks), Charon will ramp up the block size to 1024 bytes at 1200 bps, 2048 bytes at 2400 and 8192 bytes at 9600 bps and higher. If there are many retried blocks, Charon will reduce the block size.
5. And there's a cps counter as well!
Now that ZModem-Send transfers proceed at a more decent pace, I have also implemented a cps counter. It works the same way the cps counter for the ZModem receive works.
6. ZipIt is now called only once
Charon now launches ZipIt only once; previously, Charon would launch ZipIt for every inbound file it got.
7. Remembered config-filenames
When you edit a config file, Charon will remember its name and present that name as the default when you're done editing and want to save the config.
8. Bugs Fixed:
• The "Mac_flush error" which would sometimes pop up after a poll no longer occurs. Charon tried to write to the serial port after it had been closed.
• Although no testing on a PowerMac has been done yet, I have fixed some UPP-specific bugs. This should improve the chances that Charon will run native on the PPC. (If and when... :-))
• Trashing files after ZipIt is done now works properly again.
• Charon no longer munges your Date & Time settings. When I introduced the timestamping feature for the serialLog in b8, I accidentally messed with the system-wide date and time resources. A simple call to DetachResource() has fixed this bug.
• A nasty side-effect my introduction of aliases in b8 for storing paths was, that under some circumstances, you could no longer switch off the "Use Obolus" option. This has been fixed too.
As always, please send your bug reports and comments to me at qsi@cnh.wlink.nl